/*
 * @Author: your name
 * @Date: 2021-10-20 21:28:11
 * @LastEditTime: 2021-10-21 20:48:31
 * @LastEditors: Please set LastEditors
 * @Description: 时间复杂度太高
 * @FilePath: \luogu\动态规划\模板问题\P1020 导弹拦截\main.cpp
 */
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

//导弹高度
int h[100010];
//f[i] 前i个导弹的最大拦截数目 最长下降子序列
int f[100010];
//g[j] 最长上升子序列
int g[100010];

int main(){
   int n = 0;
   int maxf = 0;
   int maxg = 0;
   while(cin >> h[++n]); n--;
   for(int i=1; i<=n; i++){
       f[i] = g[i] = 1;
       for(int j=1; j<i; j++){
           if(h[j] >= h[i]){
               f[i] = max(f[j]+1,f[i]);
           }else{
               g[i] = max(g[j]+1,g[i]);
           }
       }
       maxf = maxf > f[i] ? maxf : f[i];
       maxg = maxg > g[i] ? maxg : g[i];
   }
   cout << maxf << endl;
   cout << maxg << endl;
   return 0;
}
